package com.banmao.algorithm.No101To200.No150;

import java.util.Stack;

/**
 *  我的题解
 */
public class Solution1 {

    public int evalRPN(String[] tokens) {

        Stack<String> stack = new Stack<>();
        
        for (String token : tokens) {
            // 不考虑意外情况
            Integer i1 = null;
            Integer i2 = null;
            String res = null;
            switch (token) {
                // 当token为运算符时，取出栈中的两个值，进行运算
                case "+":
                    i1 = Integer.parseInt(stack.pop());
                    i2 = Integer.parseInt(stack.pop());
                    token = String.valueOf(i1 + i2);
                    break;
                case "-":
                    i1 = Integer.parseInt(stack.pop());
                    i2 = Integer.parseInt(stack.pop());
                    token = String.valueOf(i2 - i1);
                    break;
                case "*":
                    i1 = Integer.parseInt(stack.pop());
                    i2 = Integer.parseInt(stack.pop());
                    token = String.valueOf(i1 * i2);
                    break;
                case "/":
                    i1 = Integer.parseInt(stack.pop());
                    i2 = Integer.parseInt(stack.pop());
                    token = String.valueOf(i2 / i1);
                    break;
            }
            stack.push(token);
        }
        
        return Integer.parseInt(stack.pop());

    }
    
}
